Traditionally, the task of distributing content over a network to a client computing device has been one that is highly server-intensive. In the typical model, the clients will connect to a server to receive content directly from the server on an individual basis. In the case of a large enterprise installation, for instance, this model implies that every client is required to connect to the server to receive data from it making it very difficult for the server to handle such large amounts of simultaneous requests for data.
A server-only content distribution model can also present problems with respect to bandwidth availability. With the advent of affordable and easily maintainable home networking equipment it is becoming more common for several computers in a household, or residential area, to share a single broadband or dial-up connection. A household having five computers, for example, may need to download software (e.g., patches, product upgrades, etc.) from a central server (e.g., windowsupdate.com) to each computer. Since there is a single point of receipt from outside the home network, if all five computers, or even less than all five, are requesting the same content at overlapping times the computers will be splitting the available bandwidth of the connection while receiving the same content.
Not only does a server-based content distribution solution have drawbacks in the enterprise and home settings but also in the internet setting as well. For example, the interconnected nature of the Internet has, among other things, accelerated the spread of computer viruses and worms. Unfortunately, virus cleansing and repair remains a reactionary process whereby the necessary virus definition files are distributed upon identification of the virus “in the wild.” Time is therefore of the essence in distributing the virus definition files to stanch the spread of the virus. When a new virus is first identified, the virus definition distribution servers can become overloaded with requests or could even be made unavailable (e.g., through a denial of service attack or some similar nefarious method) as part of the scheme to propagate the spread of the virus. A solution where the virus definitions are obtained only from a centralized server on the internet fails to safeguard against this eventuality and additionally fails to provide a method whereby the virus definitions can be distributed to the maximum number of computers in the most efficient fashion.
One potential solution to the problems described above is to use a series of redundant content distribution servers that may serve to distribute the load of demand over a number of servers. Such a solution however has several drawbacks. First, server hardware and software, and in particular the type of server hardware and software needed for intensive data delivery tasks, is typically expensive and requires experienced administration resources. Additionally, such a solution only scales in a linear fashion. For example, suppose 1,000 clients are currently receiving their content from a single server. Adding one more content distributing server reduces the average number of clients to a server to 500. Adding a third reduces this number to approximately 333, and so on. Thus a significant number of servers must be added to reduce the number of clients receiving content from a particular server to desired or manageable levels. Finally, a further drawback to this solution is that the content to be distributed and the distribution ability will always remain solely on the servers and hence only available in a limited fashion.